package com.weipai.springboot.module.dao;

import com.weipai.springboot.model.Product;
import com.weipai.springboot.model.ProductDesc;
import com.weipai.springboot.model.ProductPro;

import java.util.List;
import java.util.Map;

public interface ProductDao {

    //产品保存
    int save(Product product);

    //分页查询
    List<Map<String,Object>> selectAllProductByPage(Integer start, Integer size, String productCategoryId, Integer isAudit,
                                                    String search);

    //分页查询某一分类的所有商品数量
    Integer selectAllProductByPageAmount(String productCategoryId, Integer isAudit,
                                         String search);

    //修改商品的第一个页面
    Map<String,Object> getProductInfoById01(String id);

    //保存商品详情
    int saveProductDesc(ProductDesc productDesc);

    //更新货品
    int updateProduct(String productId, String productName, String productSpec);

    //更改详情和图片
    int updateProductDesc(ProductDesc productDesc);

    //通过spuNumber查询货品
    Map<String, String> getProductBySpuNumber(String spuNumber);

    //查出货品的详情和图片
    Map<String,Object> getProductImgAndDescBySpuNumber(String spuNumber);

    //得到最大产品编号的数据
    Map<String,Object> getMaxSpuNumberFlag();

    //产品审核
    int changeIsAudit(String id, Integer status);

    Product selectByPrimaryKey(String productId);

    int updateByPrimaryKeySelective(Product product);

    //修改产品的状态
    int updateStatus(String spuNumber, Integer status);

    //删除产品
    int deleteProductBySpuNumber(String spuNumber);

    //查询产品的数量
    int getProductAmount(int status);

    //获得产品评论的总数
    Integer getEvaluateAmount();

    void saveProductPro(List<ProductPro> proList);

    Map<String,Object> getMaxSpuNumber();
}